package cn.stylefeng.guns.sys.modular.system.db5.entity;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;

/**
* @author guo
* @date 2020-02-09
*/
@Data
@TableName("portal_user")
public class PortalUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 用户id */
    @TableId(value = "portal_user_id",type = IdType.AUTO)
    private Long portalUserId;

    /** 登录名 */
    @TableField("login_name")
    private String loginName;

    private String userName;

    /** 性别 */
    private String sex;

    /**
     * 密码盐
     */
    private String salt;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private String birthday;

    /** 登录密码 */
    private String password;

    /** 是否在用 */
    private String isUse;

    /** 是否在用 */
    @TableField("is_use_view")
    private String isUseView;

    /** 用户类型 */
    private String roleType;

    /** 所属人员 */
    private String renyuanId;

    /** 部门 */
    private String deptId;

    /**
     * 手机号
     */
    private String mobile;

    /** 原手机号 */
    @TableField("old_tels")
    private String oldTels;

    /** qq */
    private String qq;

    /** email */
    private String email;

    /** wx_openid */
    @TableField("wx_openid")
    private String wxOpenid;

    /** 登录密码错误次数 */
    @TableField("denglu_cuowu_cishu")
    private String dengluCuowuCishu;

    /** 最新登录错误时间 */
    @TableField("denglu_cuowu_shijian")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String dengluCuowuShijian;

    /** wx_unionid */
    @TableField("wx_unionid")
    private String wxUnionid;

    @TableField("use_outdate")
    @ApiModelProperty(hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String useOutdate;

    @ApiModelProperty(hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp createTime;

    private String lastLoginIp;

    private String lastLoginTime;

    /** 登录状态 */
    private String status;

    /** 是否删除 */
    private Boolean delFlag;

    public void copy(PortalUser source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}